﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Text;
using System.Linq;
using System.Threading.Tasks;
using System.Windows.Forms;
using DevExpress.XtraBars;
using System.Data;
using System.Data.SqlClient;
using QLTV.Public;
using QLTV.BLL;
using DevExpress.XtraEditors;


namespace QLTV.GUI.Forms
{
    public partial class frmQuyDinh : DevExpress.XtraBars.Ribbon.RibbonForm
    {
        QuyDinhDTO qdDTO = new QuyDinhDTO();
        QuyDinhBLL qdBLL = new QuyDinhBLL();
        TheLoaiBLL tlBLL = new TheLoaiBLL();
        TheLoaiDTO tlDTO = new TheLoaiDTO();
        public int tnn;
        public delegate void MyDelegate(object sender, bool check);
        public event MyDelegate myEvent;
        private bool Is_Send
        {
            set
            {
                if (value)
                {
                    if (myEvent != null) myEvent(sender: this, check: kt);
                }
            }
        }
        private bool kt = false;
        
        public frmQuyDinh()
        {
            InitializeComponent();
        }

        private void frmQuyDinh_Load(object sender, EventArgs e)
        {
            try
            {
                DataTable dt = qdBLL.QuyDinh_LoadDuLieu();
                txtTuoiToiThieu.Text = dt.Rows[0]["GiaTri"].ToString().Trim();
               // tnn = dt.Rows[0]["GiaTri"];
                txtTuoiToiDa.Text = dt.Rows[1]["GiaTri"].ToString().Trim();
                txtThoiHanCoGiaTriCuaThe.Text = dt.Rows[2]["GiaTri"].ToString().Trim();
                txtKhoangCachNamXuatBan.Text = dt.Rows[3]["GiaTri"].ToString().Trim();
                txtSoLuongMuonToiDa.Text = dt.Rows[4]["GiaTri"].ToString().Trim();
                txtSoNgayMuonToiDa.Text = dt.Rows[5]["GiaTri"].ToString().Trim();

                
                gridDSTheLoai.DataSource = tlBLL.TheLoai_LoadDuLieu();
            }
            catch (Exception)
            {
                MessageBox.Show("Vui lòng kiểm tra lại kết nối", "Có lỗi xảy ra");
            }
        }

        private void btnGhiDuLieu_Click(object sender, EventArgs e)
        {
            try
            {
                qdDTO.TuoiNhoNhat = int.Parse(txtTuoiToiThieu.Text.ToString().Trim());
                qdDTO.TuoiLonNhat = int.Parse(txtTuoiToiDa.Text.ToString().Trim());
                qdDTO.ThoiHanThe = int.Parse(txtThoiHanCoGiaTriCuaThe.Text.ToString().Trim());
                qdDTO.GioiHanNam = int.Parse(txtKhoangCachNamXuatBan.Text.Trim());
                qdDTO.MuonToiDa = int.Parse(txtSoLuongMuonToiDa.Text.Trim());
                qdDTO.NgayMuonGH = int.Parse(txtSoNgayMuonToiDa.Text.Trim());
                
                int kq = qdBLL.QuyDinh_Update(qdDTO);
                if (kq > 0)
                    XtraMessageBox.Show("Đã thêm thành công", Text, MessageBoxButtons.OK, MessageBoxIcon.Information);                    
                else
                    XtraMessageBox.Show("Thêm thất bại, vui lòng kiểm tra lại", Text, MessageBoxButtons.OK, MessageBoxIcon.Error);

            }
            catch (SqlException)
            {

                XtraMessageBox.Show("Thêm thất bại, vui lòng kiểm tra kết nối", Text, MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }

        private void btnThoat_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        private void btnThem_Click(object sender, EventArgs e)
        {          

            frmTheLoai frmTL = new frmTheLoai();

            frmTL.myEvent += frm_myEvent;

            frmTL.ShowDialog();
        }
        private void frm_myEvent(object sender, bool check)
        {
            bool kt = check;
            if (kt == true)
                gridDSTheLoai.DataSource = tlBLL.TheLoai_LoadDuLieu();
        }

        private void btnSua_Click(object sender, EventArgs e)
        {
            
            try
            {
                string _maTL = grid_DSTheLoai.GetRowCellValue(grid_DSTheLoai.FocusedRowHandle, grid_DSTheLoai.Columns["MaTL"]).ToString();
                
                // Truyen cai MaTL vua lay dx...qua ben form NhapTheLoai.
                frmTheLoai frmTL = new frmTheLoai(_maTL);
                frmTL.myEvent += frm_myEvent;
                frmTL.ShowDialog();
            }
            catch
            {
                XtraMessageBox.Show("Bạn phải chọn dòng chưa dữ liệu", Text, MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }

        private void btnXoa_Click(object sender, EventArgs e)
        {
            try
            {
                string _MaTL = grid_DSTheLoai.GetRowCellValue(grid_DSTheLoai.FocusedRowHandle, grid_DSTheLoai.Columns["MaTL"]).ToString();
                if (XtraMessageBox.Show("Bạn chắc chắn có muốn xóa thể loại này ?", "Hỏi đáp", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
                {
                    tlDTO.MaTL = _MaTL;
                    int kq = tlBLL.TheLoai_Xoa(tlDTO);
                    if (kq > 0)
                    {
                        XtraMessageBox.Show("Xóa thành công!", "Dữ liệu đã được cập nhật lại trong CSDL", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        gridDSTheLoai.DataSource = tlBLL.TheLoai_LoadDuLieu();
                    }
                    else
                    {
                        XtraMessageBox.Show("Xóa không được! Vui lòng kiểm tra lại", "Xảy ra lôi", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    }
                }
                //   else {
                //  ucDocGia_Load(sender,e);
                // }
            }
            catch
            {
                XtraMessageBox.Show("Bạn phải chọn dòng chứa dữ liệu", Text, MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
        

    }
}